<script>
    // 浮点数精度问题
    //  1、如果要对小数进行运算可以先转为整数，最后把结果转换回来即可
    //  2、使用toFixed()函数指定保留小数点后面几位来确保精度。
    let a = 0.1;
    let b = 0.2;
    let c = (a * 10 + b * 10) / 10;
    console.log(c);
    console.log(0 / 0);

    // ● 显示转化为 Number 类型：Number() / parseFloat() / parseInt()
    let num = '13.14ac4'
    console.log(Number(num));   //只要含非数字，一律得到NAN
    console.log(parseFloat(num));
    console.log(parseInt(num));

    let price1 = '189.99￥';
    let price2 = '300￥';
    let toPrice = parseFloat(price1) + parseFloat(price2);
    toPrice = toPrice + '￥';
    console.log(toPrice);

    // ● 显示转化为 String 类型：String() / toString()
    let str = 5;
    console.log(String(str));
    console.log(typeof toString(str))

    // ● 显示转化为 Boolean 类型: Boolean()
    // 假值（falsy）：js中假值有6个。
    // false、undefined、null、 0、NaN、''（空字符)。假值转换成布尔类型都是false
    // 真值（truthy）：除了以上6个,其他任意数据都是真值。真值转换成布尔类型都是true
    console.log(Boolean(1));
    console.log(Boolean(0));
    console.log(Boolean(null));
    console.log(Boolean(NaN));
    console.log(Boolean(''));
    console.log(Boolean(false));
    console.log(Boolean(undefined));

    // 双感叹号技巧。 !!变量名 转化为boolean类型
    // 一个感叹号！是取反得到布尔类型的值，双!!就是取反两次。
    let x = 100;
    console.log(!!x);
    let y = 0;          //false
    console.log(!y);    //true
    console.log(!!y);   //False









</script>